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

Upload: others

Post on 15-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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