K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y...

51
Prof. Esp. Ing. José María Sola Universidad Tecnológica Nacional Facultad Regional Buenos Aires Departamento de Ingeniería en Sistemas de Información K2051 2016

Transcript of K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y...

Page 1: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Prof.Esp.Ing.JoséMaríaSola

UniversidadTecnológicaNacional

FacultadRegionalBuenosAires

DepartamentodeIngenieríaenSistemasdeInformación

K2051

2016

Page 2: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Marzo14,Lunes

Page 3: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Agendaparaestaclase�  Bienvenidosasegundoañoyalcurso�  Presentacióninicial,conozcámonos

�  ElcontextodeSSL�  SobrelaCátedraylaAsignatura�  Laaprobaciónylaregularización�  Bibliografía�  GrupoYahoo�  GitHub

�  Páginadelcurso�  SobreelLenguajeC�  Primercontactoconelcompilador

�  Hello.c

�  SobreelcompiladoryelIDE

�  TrabajoPráctico#0:“Hello,World!”

�  Tareasparalapróximaclase

�  Términosdelaclase.

Prof. Esp. Ing. José María Sola 3

Page 4: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Conozcámonos

Page 5: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

DocentesdelCurso� ProfesoraCargo

�  Esp.Ing.JoséMaríaSola

� Auxiliares�  Srta.ElizabethSosa

Prof. Esp. Ing. José María Sola 5

Page 6: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

EnlaClaseyHorarios� Primerasfiladebancolibresparaelproyectoryparaotromaterial(sielaulanotieneproyectorintegrado)

� Entrarysalirporpuertatrasera(sielaulalatiene)� Celular,ensilencioovibrador� Horariosdelcurso

�  4horascátedraconintervalode15minutos

�  3horasreloj+intervalode15o20minutos

�  19:45a�  Intervalo21:00

�  23:00� Consultaspresenciales,antesydespuésdeclase.

Prof. Esp. Ing. José María Sola 6

Page 7: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y
Page 8: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

AnálisisdelTítulodelaCarrera–IngenieríaenSistemasdeInformación�  Ingeniería

�  Aplicacióntecnología—cienciaytécnicas—pararesoluciónproblemas

�  Construccióndesoluciones�  Sistema

�  Conjuntodeelementosrelacionadosconobjetivocomún

�  Información

�  Datosprocesados

�  Materiaprimaparatomadedecisiones

�  Datovalorsintáctico

�  Informaciónvalorsemántico.

�  SistemadeInformación

�  Sistemamanualoautomáticocon

�  personas,máquinasométodos

que

�  procesainformación

�  recolecta,transmite,almacenadistribuye,presentaymanipula

�  informaciónparasususuarios

�  entiempoyforma

�  Engeneral,lossistemasdeinformacióntienengrandespartesimplementadasconSistemasSoftware

�  LaprogramaciónylaconstruccióndeSistemasSoftware.

Prof. Esp. Ing. José María Sola 8

Page 9: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

RoldelaMateriaenlasAcAvidadesdelIngenieroenSistemasdeInformación

Organización

SistemadeInformación

Proyecto

Problema

(Necesidad)Desarrollo

Análisis Diseño Implementación

Solución

Prof. Esp. Ing. José María Sola 9

Page 10: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

OtrasAsignaturas� AsignaturasAnteriores

�  AlgoritmosyEstructurasdeDatos

� MatemáticaDiscreta

�  SistemasyOrganizaciones(nocorrelativa)

� AsignaturasParalelas�  ParadigmasdeProgramación

�  AnálisisdeSistemas

�  SistemasOperativos(segundonivel,segúnelplan)

Prof. Esp. Ing. José María Sola 10

Page 11: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

�  Objetivos

�  Identificarproblemasalgorítmicos.

�  Conocerelprocesodediseñoeimplementacióndesoftware

�  Aplicarlasherramientasfundamentalesrepresentativasdelosprocesos,integrandolasintaxiselementaldeunlenguajedeprogramaciónenellaboratorioasociado

�  ContenidosMínimos

�  ConceptodeDato

�  TiposdeDatosSimples

�  TipoAbstractodedatos�  EstructurasdeControlBásicas:

secuencial,condicional,cíclica

�  EstrategiasdeResolución

�  EstructurasdeDatos:registros,arreglosyarchivos

�  Abstraccionesconprocedimientosyfunciones

�  PasajedeParámetros

�  EstructurasdeDatoslineales(Pilas-Colas)

�  AlgoritmosdeBúsqueda,RecorridoyOrdenamiento

�  ArchivosdeAccesoSecuencialyAleatorio:organizacionesyaccesos.

�  ProcesamientoBásico

�  Recursividad�  NocionesdeComplejidad

Computacional

�  NocióndeOrdendeComplejidad.

AlgoritmosyEstructurasdeDatos

Prof. Esp. Ing. José María Sola 11

Page 12: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

�  Objetivos

�  Aplicarmétodosinductivos,

deductivosyrecursivosenlaresolucióndesituaciones

problemáticasydemostracionesmatemáticas

�  Comprenderlosconceptosyprocedimientosnecesariospara

resolverrelacionesde

recurrencia

�  Aplicarpropiedadesyfuncionesdefinidasenlosnúmerosenterosyenterosnonegativos

�  Caracterizardistintasestructurasalgebraicas,

enfatizandolasqueseanfinitas

ylasálgebrasdeBoole

�  Aplicarpropiedadesdegrafos,dígrafosyárbolesenlaresolucióndesituaciones

problemáticas

�  ContenidosMínimos

�  LógicaProporcionalClásicaydePredicadosdePrimerOrden

�  TeoríadeNúmeros

�  InducciónMatemática

�  RelacionesdeRecurrencia�  EstructurasAlgebraicasFinitas

yAlgebradeBoole

�  Grafos,dígrafosyárboles.

MatemáAcaDiscreta

Prof. Esp. Ing. José María Sola 12

Page 13: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

SSLenlaCarrera

Asignatura

Área

CarreraIngenieríaenSistemasdeInformación

Programación

SSL Otras

Otras

Otras

Prof. Esp. Ing. José María Sola 13

Page 14: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

ÁreaProgramación� Objetivos

�  Formareinformaracercademetodologías,técnicasy

lenguajesdeprogramación,comoherramientasbásicas

paraeldesarrollodesoftwareyelestudiodedisciplinas

quepermitancrearnuevastecnologías

� Asignaturas(640hs)�  1.MatemáticaDiscreta(96hs)

�  2.AlgoritmosyEstructurasdeDatos(160hs)

�  3.SintaxisySemánticadelosLenguajes(128hs)

�  4.ParadigmasdeProgramación(128hs)

�  5.GestióndeDatos(128hs).

Prof. Esp. Ing. José María Sola 14

Page 15: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

�  MD,AyEdD,SSL

�  ParadigmasdeProgramación

�  Comprenderlosfundamentos

delosparadigmasdeprogramaciónbásicosqueson

utilizadosporloslenguajesde

programaciónactuales

�  Conocerelmodeloformalo

semiformalsubyacentedecadaparadigmaylaformaen

queelmismoesincorporadoenunlenguajede

programaciónconcreto.

�  Aplicarlosdiferentesparadigmasenlaresolución

deproblemas

�  GestióndeDatos

�  Desarrollarlosconceptosdeestructuracióndelosdatosendispositivosdealmacenamiento.

�  Describirmetodologíasparaelmodeladodedatos.

�  Conocermodelosactualesparalapersistenciadegrandesvolúmenesdedatos.

�  Desarrollarlosconceptosrelacionadosconlaconsistencia,integridadyseguridaddelainformación.Aplicartécnicasymétodosparaeltratamientoconcurrentedelosdatos.

ObjeAvosdecadaAsignaturadelÁrea

Prof. Esp. Ing. José María Sola 15

Page 16: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

IntegraciónconotrasAsignaturasyConceptosPrincipales�  IntegraciónenÁreadeProgramación

�  Integraciónvertical�  MatemáticaDiscreta

�  AlgoritmosyEstructurasdeDatos

�  GestióndeDatos

�  IntegraciónHorizontal

�  ParadigmasdeProgramación

�  Integraciónconotrasáreas�  Computación

�  SistemasdeInformación

�  Abstracción(conceptofundamental)

�  Separación,dejardeladolosdetallesparaenfocarenloimportante

�  OrientaciónaObjetos

�  Objeto:entidadconcomportamientoyquemantieneunestado.

Prof. Esp. Ing. José María Sola 16

Page 17: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y
Page 18: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

AnálisisdelNombredelaAsignatura–SintaxisySemánAcadelosLenguajes(deProgramación)�  Lenguaje:mediodecomunicación

�  LenguajesNaturalesversusLenguajesFormales

�  Lenguajedeprogramación:mediodecomunicaciónparadefinircomportamientodeunSistemaSoftware

�  Sintaxis:Forma,Estructura

�  Reglasdeforma

�  ¿Cómoseescribe?

�  Semántica:Significado,Sentido

�  Reglasdesignificado�  ¿Quésignifica?

�  Comportamientodelsistemaenfuncióndeloescrito

�  ¿Léxico?�  Componentesdelasestructurassintácticas

�  ¿Pragmática?

�  “Bugs”,“Gaps”,Verificación,Validación,Comportamientoesperado.

Prof. Esp. Ing. José María Sola 18

Page 19: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

GeneralidadesdeSSLOrdenanza1150/2007�  Departamento IngenieríaenSistemasdeInformación�  Bloque TecnologíasBásicas�  Área Programación�  Nivel 2�  Horas/semana 4�  Horas/Año 128�  Correlatividades

�  Anteriores�  AlgoritmosyEstructurasdeDatos�  MatemáticaDiscreta

�  Siguientes�  Debeestarregularizadaparacursar

�  GestióndeDatos(3ro)�  Debeestaraprobadaparacursar

�  IngenieríaenSoftware(4to)

Prof. Esp. Ing. José María Sola 19

Page 20: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

ObjetivosContenidosMínimos

�  Conocerloselementospropiosdelasintaxisysemánticadeloslenguajesdeprogramación

�  Conocerloslenguajesformalesyautómatas

�  Comprenderconceptosyprocedimientosdelasgramáticaslibresdecontextoygramáticasregularesparaespecificarlasintaxisdeloslenguajesdeprogramación

�  Utilizardistintostiposdeautómatasydistintostiposdenotacionesgramaticales

�  Comprenderelprocesamientodelenguajesyenparticular,elprocesodecompilación

�  GramáticayLenguajesFormales

�  JerarquíadeChomsky�  AutómatasFinitos�  ExpresionesRegularesysu

aplicaciónalAnálisisLéxico�  GramáticasIndependientes

delContexto�  AutómatasPushDownysu

AplicaciónalAnálisisSintáctico�  OtrosTiposdeAnalizadores

Sintácticos

�  MáquinasTuring�  IntroducciónalasSemánticas.

ProgramaSintéAcodeSSLOrdenanza1150/2007

Page 21: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

LosTemasdeSSLLéxico,Sintaxis,SemánticayPragmática

• Definición

• Conceptos•  Ejemplos

Compilador

•  Proceso•  Construcción

LenguajesFormales

•  Modelos

•  LenguajesdeProgramación

ANSIC

• Definición

• Aplicación

Prof. Esp. Ing. José María Sola 21

SSL

Page 22: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

LaCátedra�  DirectoradeCátedra

�  C.C.MartaFerrariProfesoraAsociada(CarreraAcadémica)

�  ProfesoresenCarreraAcadémica�  Ing.SilvinaOrtega

ProfesoraAdjunta(CarreraAcadémica)�  ProfesoresAdjuntos,Interinos

�  Lic.RicardoBarca�  Ing.EduardoZúñiga�  Esp.Ing.JoseMaríaSola�  Dr.OscarBruno

�  AnterioresProfersores�  C.C.JorgeMuchnik

ProfesorTitular(Ordinario)�  C.C.AnaMaríaDíazBott

ProfesoraAdjunta(CarreraAcadémica)�  C.C.AdrianaAdamoli

ProfesoraAdjuntaInterina(Interino)

Prof. Esp. Ing. José María Sola 22

Page 23: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y
Page 24: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y
Page 25: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Aprobación–ExamenFinal�  Requisitoparaaprobación

�  Regularizaciónyaprobacióndelexamenfinal

�  Laregularizaciónvencealoscuatroaños�  Examenfinal

�  Correlativasaprobadas�  AlgoritmosyEstructurasdeDatos

�  MatemáticaDiscreta

�  Cuatrooportunidades�  Elexamenfinalesconceptual

�  EjerciciosyAfirmacionessinJustificación

�  Lasafirmacionessonsinjustificación

�  Losejerciciosnorequierenunaresoluciónextensa

�  Seapruebaconnota4�  Sedebenresponderporlomenos5puntos

�  Porlomenosunejerciciodebeestarbienresuelto

�  Conformacióndelanota

�  Lasafirmacionesmalrespondidasrestanuno

�  Locorrectosumauno

�  Lonorespondidonosumaniresta.

Prof. Esp. Ing. José María Sola 25

Page 26: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

RequisitosparalaRegularización(i.e.,Firma)�  75%deAsistencia(Bedelía)

� Evaluaciones(Cátedra)�  Grupaleseindividuales�  TrabajosPrácticos,entregassemanales

�  Deaplicaciónoconceptuales

� Dosrecuperatorios,enDicyenFeb

� Notaconceptual

�  Evaluacióncontinua�  Lasfechasseestablecenduranteelcurso�  Findelcurso

�  Evaluaciónindividualoral-escrita("coloquio”)

�  Conocimientosdelostrabajosprácticos.

Prof. Esp. Ing. José María Sola 26

Page 27: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

DinámicadeTrabajo�  Indicacióndelecturasyejerciciosobligatorios� Profundizacióndeconceptosenclase� Claseinteractivayparticipativa

�  Serecomiendaseguirlaclaseconlabibliografíaytomar

apuntesalapar

� Ejerciciosdeaplicaciónenclase� Consultas

� Duranteclase,yjustoantesdeiniciaryfinalizarlaclase

�  Enotroshorarios,atravésdelForoenYahooGroups.

Prof. Esp. Ing. José María Sola 27

Page 28: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Bibliogra[a�  Libros

�  [K&R1988]�  Biblioteca,Fotocopiadora,yLibrerías

�  [MUCH2012],tresvolúmenes

�  Biblioteca,yLibreríadelCentrodeEstudiantes

� Otrosartículosalolargodelcurso,informadosporel

GrupoYahoo,ypublicadosdesdelapáginadelcurso

� Prioritariosparaprimerapartedelcurso

�  Capítulo#1de[K&R1988]

�  Volumen#1de[MUCH2012].

Prof. Esp. Ing. José María Sola 28

Page 29: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

GrupoYahooUTNFRBASSLh_ps://groups.yahoo.com/group/UTNFRBASSL

Prof. Esp. Ing. José María Sola 29

Page 30: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

�  Objetivos

�  Forodelcurso�  Canaldecomunicación

�  Materialesdelectura

�  Consultas�  Enunciados�  Anunciosparticularesdel

cursoygenerales

�  Antesdecadaclasesedeberevisarsihaynovedadesenelgrupo

�  Periododesuscripción�  durantelastresprimeras

semanasdelcuatrimestre

�  Siyaestáinscriptonoesnecesarioreinscribirse

�  Requisitosparasuscripción�  UsuarioYahooconnombrey

apellido

�  Cuentadee-mail(decualquierdominio)connombreyapellido,asociadaalusuarioYahoo

�  Desdelapáginadesuscripción,completarformulariocon�  nombreyapellido,

�  legajoy

�  códigodecurso

�  Comunicación

�  Elsubject(asuntodelmensaje)debecomenzarconelcódigodecursoydebeserdescriptivo

�  Sedebefirmarconnombreyapellido

�  NoestánpermitidoslosOff-Topic

�  ReglasparaelusodelgrupoYahooenlasecciónFiles(archivos)delpropiogrupo.

GrupoYahooUTNFRBASSLh_ps://groups.yahoo.com/group/UTNFRBASSL

Prof. Esp. Ing. José María Sola 30

Page 31: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

�  SistemadeControldeVersiones(VCS)

�  Gestióndecambiossobreproductoosuconfiguración

�  Ejemplos:Git,Mercurial,ySubversion

�  Git

�  VCSdistribuido,2005porLinusTorvaldsparaelkerneldeLinux

�  GitHub

�  ServicioqueimplementaGit

�  Otrossimilares:Bitbucket,GitLab,Gitorious,CloudForge

�  ¿PorquéGitHubenelCurso?

�  Tienepepositoriospúblicos,yprivadosparauniversidades

�  Es,paramuchos,elprimercontactoconunVCSdistribuido,yconlenguajesdemarcalivianos,comomarkdown

�  Esmáseficientequetrabajosimpresos

�  Poseeinterfacesweb,deescritorio,ymóvil

�  ¿Paraqué?

�  Avancedecadaestudianteydecadaequipo.

�  Interacciónentrealumnosyconlacátedrasimilararedsocial

�  Seguimientodecorreccionesymejoras

�  Repositoriosduranteelcurso

�  Primerasclases�  Repositorioindividual

�  Luego,usodelaOrganizaciónutn-frba-ssl�  Paralosmiembrosdel

cursoasignamosunarepositorioprivado,dentroutn-frba-ssl,acadaequipo

�  https://github.com/orgs/utn-frba-ssl/

�  PrimerosPasosenGitHub

1.  Leerguía"Git101”

2.  CrearUsuario

3.  CrearRepositorio.

GityGitHubh_ps://github.com/orgs/utn-frba-ssl

Prof. Esp. Ing. José María Sola 31

•  https://josemariasola.files.wordpress.com/2015/04/git-101.pdf •  https://guides.github.com/activities/hello-world/

Page 32: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

HomepagedelCurso

Prof. Esp. Ing. José María Sola 32

Page 33: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

josemariasola.wordpress.comHomepage

GitHubPapersy

Resolucionesdecadaequipo

YahooGroupsUTNFRBASSLForoparaconsultasyanuncios

GoogleCalendarCaledariocondetalledeactividades

ClasesPresenciales

PlataformadelCurso

Prof. Esp. Ing. José María Sola 33

Page 34: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

LenguajesyHerramientasdeDesarrollo

Page 35: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

¿QuéesunCompilador?� Programaquehaceprogramas,unmetaprograma

� Traductor�  FuncióndeLenguajeaLenguaje� Proceso,enetapas� BajadeNivel

Prof. Esp. Ing. José María Sola 35

Page 36: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Historia ConjuntosdeinfinitosprogramasválidosdeC++yC

�  1970's�  C�  CWithClasses

�  1980's�  ComienzastandardC

�  C++�  1990's

�  StandardC90�  StandardC++98

�  2000's�  StandardC99�  StandardC++03

�  2010's�  StandardC11�  StandardC++11,14,17

C++

C

SobrelosLenguajesCyC++

(representa probabilidad)

Prof. Esp. Ing. José María Sola 36

Page 37: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

/* Hello World * JMS * 20150402 */ #include <stdio.h> int main(void){ printf("Hello, World!\n"); }

�  Comentarioencabezado

�  Qué

�  Títulodescriptivo

�  Quién

�  NúmerodeEquipoeintegrantes

�  Cuándo�  Seactualizóporúltimavez

“Hello,World!”

•  1.1 [K&R1988] •  https://en.wikipedia.org/wiki/"Hello,_World!"_program

Page 38: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Procesobásicoparadesarrollarprogramas1.   Escribirelprogramaconuneditordetexto(e.g.,vi,

Notepad,TextPad,Sublime,TextMate,Notepad++,

Notepad2).Esconvenciónparalosarchivosfuentede

Claextensiónsea.c(e.g.,hello.c)

2.   Compilarelarchivofuenteparaproducirelprograma

objeto(e.g.,cchello.c)

3.   Vincular(link)elprogramaconlasbibliotecaspara

crearelprogramaejecutable;generalmenteocurre

jnutoconelpuntoanterior.

4.   Ejecutarelprograma(e.g.,hello.exeó./a.out)

Prof. Esp. Ing. José María Sola 38

Page 39: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

EjemplodesdelíneadecomandoMacOSXC111.  Desdelalíneadecomando

1.  >vihello.c crearelfuente

2.  >cc-std=c11-Wall-pedantic-errorshello.c crearelejecutable enrealidad:Preprocesador�Compilador�Linker

3.  >./a.out ejecutarHello,World! salida

2.  Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3

Prof. Esp. Ing. José María Sola 39

Page 40: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

EjemplodesdelíneadecomandoCompiladorMicrosoj1.  Desdelalíneadecomando

1.  >notepadhello.c crearelfuente

2.  >clhello.c crearelejecutable enrealidad:Preprocesador�Compilador�Linker

3.  >hello.exe ejecutarHello,World! salida

2.  Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3

Prof. Esp. Ing. José María Sola 40

Page 41: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

EjemplodesdelíneadecomandoCompiladorBorland1.  Desdelalíneadecomando

1.  >notepadhello.c crearelfuente2.  >bcc32hello.c crearelejecutable

enrealidad:Preprocesador�Compilador�Linker3.  >hello.exe ejecutar

Hello,World! salida

2.  Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3

Prof. Esp. Ing. José María Sola 41

Page 42: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

� ConIDE(IntegratedDevelopmentEnviroment,EntornoIntegradode

Desarrollo)

�  Ejemplos

�  AppleXcode

�  MicrosoftVisualC++

ExpressEdition

�  EclipseJuno.

�  SinIDE

�  Editor�  Compilador

CompiladordeC/C++

ConIDE·Editor

·Depurador

·Gestorde

Proyectosy

deconfigu-

raciones

·Ayuda

·ymás…

SinIDERequiere

editor

HerramientasdeDesarrollo:SobreelCompiladoryelIDE

Prof. Esp. Ing. José María Sola 42

Page 43: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

EjemploconIDEMicrosojVisualStudioExpress2013forWindowsDesktop

Prof. Esp. Ing. José María Sola 43

Page 44: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

EjemploconIDEAppleXcode

Prof. Esp. Ing. José María Sola 44

Page 45: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

�  ConIDEyLíneadeComandos

�  MicrosoftVisualStudioExpress2015forWindowsDesktop�  http://www.visualstudio.com/

downloads/download-visual-studio-vs#d-express-windows-desktop

�  AppleXcode�  https://developer.apple.com/

xcode/

�  Dev-C++�  http://orwelldevcpp.blogspot.com

�  EclipseIDEforC/C++Developers�  http://www.eclipse.org/

downloads/packages/eclipse-ide-cc-developers/lunasr2

�  Code::Blocks�  http://www.codeblocks.org/

downloads/

�  SinIDE,soloLíneadeComandos

�  GNUCCompiler(ahoraGNUCompilerCollection)�  http://gcc.gnu.org/install/binaries.html

�  Bcc32�  https://www.dropbox.com/sh/

5n120owrpr17ne2/_VqNDR-wIZ

�  FreeC++Compilerhttp://www.embarcadero.com/products/cbuilder/free-compiler

�  BorlandC++Compilerversion5.5FreeDownloadhttp://edn.embarcadero.com/article/20633

�  UsingtheBorland5.5Compilerandcommand-linetoolshttp://edn.embarcadero.com/article/20997

�  BorlandC++5.5FreeCommand-lineToolsSupplementaryInformationhttp://edn.embarcadero.com/article/21205

LinksaCompiladoresC/C++

Prof. Esp. Ing. José María Sola 45

Page 46: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

PrimerTrabajoPrácAco:TP#0–HolaMundo�  SecuenciasdeTarea

�  1.InscribirsealGrupoYahoo�  2.SeleccionareinstalarcompiladorC11

�  3.ProbarcompiladorconelprogramaHelloWorldTodocódigofuentedebecomenzarconelcomentario/* Qué * Quién * Cuándo */ ReemplazarQuiénporelnombrecompletodelautoroautores,Cuándoconlafechaúltimamodificación,yQuéconunabrevedescripcióndelprograma.

�  4.Ejecutarelprograma,ycapturarsusalidaenunarchivodetexto

�  5.Registrarseypublicarhello.cysalida.txtenGitHub

�  6.EnviaralgrupoYahoousuarioyrepositorioGitHub

�  Restricciones�  Lafechalímitedeentregaeseldíadelasegundaclssealas13:00hs

�  LaevaluaciónsehaceconlopublicadoenGitHub.

Prof. Esp. Ing. José María Sola 46

Page 47: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Archivos� RecepciónautomáticaalinscribirsealGrupoYahoo

�  “Empezando.pdf”

�  “ReglasdeUsodelYahooGroupUTNFRBASSL.pdf”

� Enjosemariasola.wordpress.com

�  "SSL2016K2051Clase#1.pdf"

�  "Git101.pdf"

Prof. Esp. Ing. José María Sola 47

Page 48: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Tareasparalapróximaclase1.  SolicitarinscripciónalGrupoYahoo

2.  CrearusuarioGitHub

3.  Leer1.1de[K&R1988]

4.  RealizarTP#0"Hello,World!”

•  TPobligatorioparaquienesnotienenconocimientode

programaciónenCoC++.

Prof. Esp. Ing. José María Sola 48

Page 49: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y

Términosdelaclase#Definircadatérminoconlabibliogra[a�  Programación

�  Programa

�  LenguajedeProgramación

�  Comportamiento

�  Software

�  Ingeniería

�  Sistema

�  Información

�  Dato

�  EstructuradeDatos

�  IngenieríaenSistemasdeInformación

�  SistemadeInformación

�  Proyecto

�  Problema(Necesidad)

�  Solución

�  Desarrollo

�  Análisis

�  Diseño

�  Implementación

�  Organización

�  Abstracción

�  OrientaciónaObjetos

�  Lenguaje

�  LenguajeNatural

�  LenguajeFormal

�  Sintaxis

�  Semántica

�  Léxico

�  Pragmática

�  SCV(SistemadeControldeVersiones)

�  Git

�  GitHub

�  Repositorio

�  Compilador

�  Proceso

�  Funcióndelcompilador

�  Lenguajemáquina(bajoniveldeabstracción)

�  LenguajedeAltoNiveldeAbstracción

�  C

�  C++

�  HelloWorld(Kernighan)

�  IDE(IntegratedDevelopmentEnviroment,EntornoIntedradodeDesarrollo).

01

Prof. Esp. Ing. José María Sola 49

Page 50: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y
Page 51: K2051 2016 - josemariasola.github.io 2016 K2051 Cla… · Conocer los lenguajes formales y autómatas Comprender conceptos y procedimientos de las gramáticas libres de contexto y